package com.example.project.projectspringcloud.service.sys;

import com.example.project.projectspringcloud.common.OperationException;
import com.example.project.projectspringcloud.entity.Page;
import com.example.project.projectspringcloud.entity.sys.SysConfig;

import java.util.List;
import java.util.Map;

public interface SysConfigService {

    /**
     * 获取配置列表
     * ==============================================================================
     *
     * @param page
     * @param sysConfig
     * @return
     */
    List<SysConfig> list(Page page, SysConfig sysConfig);

    /**
     * 获取配置Map
     *
     * @param sysConfig
     * @return
     */
    Map configs(SysConfig sysConfig);

    /**
     * 删除配置数据
     * ==============================================================================
     *
     * @param idarr 配置项 id array
     * @return
     */
    boolean delete(Integer[] idarr);

    /**
     * 获取单个配置
     * ==============================================================================
     *
     * @param sysConfig
     * @return
     */
    SysConfig get(SysConfig sysConfig);

    /**
     * 保存配置
     * ==============================================================================
     *
     * @param sysConfig
     * @return
     * @throws OperationException
     */
    boolean save(SysConfig sysConfig) throws OperationException;

    /**
     * 发送短信
     * ==============================================================================
     *
     * @param target 接收方号码
     * @param type   短信类型
     * @return
     * @throws OperationException
     */
    boolean sms(String target, String type) throws OperationException;

}
